package cn.tedu.antconlonysever.contract.dao.persist.repository;

import cn.tedu.antcolonycommons.pojo.vo.PageData;
import cn.tedu.antconlonysever.contract.pojo.entity.Contract;
import cn.tedu.antconlonysever.contract.pojo.vo.ContractListVo;
import cn.tedu.antconlonysever.contract.pojo.vo.ContractStandardVO;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;

public interface IContractRepository {
    /**
     *
     * @param contract 合同数据
     * @return 受影响行数
     */
    int insert(Contract contract);

    /**
     *
     * @param contractsList 合同列表
     * @return 受影响行数
     */
    int insertBatch(List<Contract> contractsList);

    /**
     *
     * @param id 合同id
     * @return 受影响行数
     */
    int deleteById(Long id);

    /**
     *
     * @param idList 若干个合同id的数组
     * @return  受影响行数
     */
    int deleteByIds(Collection<Long> idList);

    /**
     *
     * @param contract 封装了相册id和新数据的对象
     * @return 受影响行数
     */
    int update(Contract contract);

    /**
     *
     * @return 合同数据的数量
     */
    int count();

    /**
     *
     * @param title 合同标题
     * @return 匹配标题的合同数量
     */
    int countTitle(String title);
    int countOrderId(Long orderId);


    int countNameAndNotTitle(@Param("id")Long id, @Param("title")String title);
    ContractStandardVO getStandardById(Long id);
    ContractStandardVO getStandardCusName(String cusName);

    PageData<ContractListVo> list(Integer pageNum, Integer pageSize);
}
